package com.gengzp.common.document.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @ClassName ApiModelProperty
 * @Description 写在实体类的参数上, 用于生成接口文档中的参数字段详细信息
 * @Author gengzp
 * @Date 2025/5/10 23:58
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiModelProperty {

    /**
     * 实体类中字段的描述
     */
    String value() default "";

    /**
     * 字段是否必填, 默认为否
     */
    boolean required() default false;

    /**
     * 字段的集合内泛型, 默认无需填写, 如果该字段是集合, 则需要填写其中的泛型
     */
    Class<?> collectionGenericClass() default void.class;

    /**
     * 字段对应的枚举类, 默认无需填写, 如果有枚举类, 则会自动展示枚举类的值
     */
    Class<?> enumClass() default void.class;

}

